package com.sharer.last.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sharer.last.base.model.PageVO;
import com.sharer.last.model.dto.schedule.ScheduleJobChangeDTO;
import com.sharer.last.model.dto.schedule.ScheduleJobQueryDTO;
import com.sharer.last.model.po.ScheduleJobPO;
import com.sharer.last.model.po.ScheduleJobLogPO;
import com.sharer.last.model.vo.ScheduleJobVO;

import java.util.List;

public interface ScheduleJobService extends IService<ScheduleJobPO> {
    /**
     * 查询定时任务
     *
     * @return
     */
    List<ScheduleJobPO> queryList();

    /**
     * 分页查询
     *
     * @param scheduleJobDTO
     * @return
     */
    PageVO<ScheduleJobVO> selectListByPage(ScheduleJobQueryDTO scheduleJobDTO);

    /**
     * 创建定时任务
     *
     * @param dto
     */
    void createJob(ScheduleJobChangeDTO dto);

    /**
     * 更新定时任务
     *
     * @param dto
     */
    void updateJob(ScheduleJobChangeDTO dto);

    /**
     * 更新定时任务状态
     *
     * @param jobId
     * @param status
     */
    void updateJobStatusById(Long jobId, Integer status);

    /**
     * 删除定时任务
     *
     * @param id
     */
    void removeJobById(Long id);

    /**
     * 执行任务
     *
     * @param jobId
     */
    void runJobById(Long jobId);




    void saveJobLog(ScheduleJobLogPO log);

    void deleteJobLogByLogId(Long logId);


}
